<?php
include_once '../config/koneksi.php';

class HakCuti{
var $nip;
var $thn_cuti;
var $jml_hakcuti;
protected $connect;

        function __construct(){
            $this->connect = new Koneksi();
            $this->connect->connect();
        }
        
        //fungsi untuk mengecek tahun cuti, apakah sudah diupdate atau belum
        function cekTahunCuti($tahun){
            $hasil;
            $sql=$this->connect->prepare("select count(thn_cuti) as jumlah from d_hakcuti where thn_cuti= ?");
            $isi=array($tahun);
            $sql->execute($isi);
            if($sql){
                $row=$sql->fetch();
                $hasil=$row['jumlah'];
            }
            return $hasil;
        }
        
        //fungsi untuk mengambil hak pribadi pegawai
	function getHakCuti($nip,$tahun){
            $hak=new HakCuti();
            $sql=$this->connect->prepare("select * from d_hakcuti where nip= ? AND thn_cuti= ?");
            $isi=array($nip,$tahun);
            $sql->execute($isi);
            if($sql){
                $row=$sql->fetch();
                $hak->nip=$row['nip'];
                $hak->thn_cuti=$row['thn_cuti'];
                $hak->jml_hakcuti=$row['jml_hakcuti'];     
            }
            return $hak;
	}
	
        //fungsi untuk mengupdate hak cuti ketika pegawai melakukan pengambilan hak cuti
        //atau pada saat mengupdate cuti bersama sehingga mengurangi hak cuti pegawai
	function updateHakCuti($nip,$tahun,$hak){
            $hakcuti=$this->getHakCuti($nip,$tahun);
            $hakcuti_setelahnya=(int)$hakcuti->jml_hakcuti-$hak;
            $sql=$this->connect->prepare("update d_hakcuti set jml_hakcuti= ? WHERE nip = ? AND thn_cuti= ?");
            $isi=array($hakcuti_setelahnya,$nip,$tahun);
            $sql->execute($isi);
	}
        
        //fungsi untuk menambah hak cuti tahunan pegawai
        function insertHakCutiTahunan($tahun){
            //mencari pegawai yang aktif
            $sql=$this->connect->query("SELECT nip from d_pegawai where status=1");
            $i=0;
            if($sql){
                while($row=$sql->fetch()){
                    $i++;
                    $jml_hakcuti=0;
                    $this->nip=$row['nip'];
                    //mencari sisa hak cuti tahun sebelumnya
                    $hakbefore=$this->getHakCuti($this->nip,(int)$tahun-1);
                    //jika data tidak ada (misal pegawai baru), hak cuti langsung ditambahkan menjadi 12
                    if($hakbefore==NULL){
                        $jml_hakcuti=+12;
                    }else{
                    //jika data ada (pegawai lama yang hak cuti tahun sebelumnya telah ada)
                        $hak=(int)$hakbefore->jml_hakcuti + 12;
                        if($hak > 24){
                            $jml_hakcuti=24;
                        }else{
                            $jml_hakcuti=$hak;
                        }
                    }
                    $sql2=$this->connect->prepare("insert into d_hakcuti(nip,thn_cuti,jml_hakcuti) VALUES (?,?,?)");
                    $isi=array($this->nip,$tahun,$jml_hakcuti);
                    $sql2->execute($isi);
                }
                //mengembalikan jumlah pegawai yang berhasil diupdate hak cuti tahunannya
                return $i;
            }
        }
}